package com.jxau.mapper;

import com.jxau.entity.Article;
import com.jxau.entity.Temp;
import com.jxau.entity.view.IndexArticles;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

public interface ArticleMapper {
    /**
     * 查询所有文章
     * 无登录状态热搜
     * @return 所有文章集合，按时间降序排列
     */
    ArrayList<IndexArticles> queryAllArticles();

    /**
     * 为已登录用户查找所有文章（标记已赞和已收藏）
     * 已登录状态热搜页面
     * @param uid
     * @return 所有文章集合（待点赞标记）
     */
    ArrayList<IndexArticles> queryAllArticlesWithUid(String uid);

    /**
     * 查询已关注用户发布的文章
     * @param uid
     * @return 已关注用户发布的文章集合
     */
    ArrayList<IndexArticles> queryFollowUsersArticles(String uid);

    /**
     * 添加文章
     * @param article
     */
    void addArticle(Article article);


    /**
     * 查询该用户文章
     * @param authorId
     * @return
     */
    ArrayList<Article> queryArticlesByAuthorId(String authorId);

    /**
     * 模糊查询（登录状态）
     * @param str 查询的字段
     * @param uid 登录的用户
     * @return
     */
    ArrayList<IndexArticles> findArticleByStrWithLogin(@Param("str") String str,@Param("uid") String uid);
    List<Temp> getAllArticles();

    List<Temp> getArticleById(int id);

    int deleteArticle(int id);

    ArrayList<Article> queryMyCollection(String uid);

    void viewPlus(int articleId);

    Article queryOneArticleWithUid(@Param("articleId") int articleId, @Param("uid") String uid);

    Article queryArticlesById(Integer articleId);

    void updateTop(@Param("articleId") int articleId, @Param("top") int top);
}
